<template>
  <div class="app-topnav">
    <div class="container">
      <ul>
        <template v-if="profile.token">
          <li><router-link to="/member"><i class="iconfont icon-user"></i>{{ profile.account }}</router-link></li>
          <li><a href="javascript:;" @click="logout()">退出登录</a></li>
        </template>
        <template v-else>
          <li><router-link to="/login">请先登录</router-link></li>
          <li><a href="javascript:;">免费注册</a></li>
        </template>
        <li><a href="javascript:;">我的订单</a></li>
        <li><a href="javascript:;">会员中心</a></li>
        <li><a href="javascript:;">帮助中心</a></li>
        <li><a href="javascript:;">关于我们</a></li>
        <li><a href="javascript:;"><i class="iconfont icon-phone">手机版</i></a></li>
      </ul>
    </div>
  </div>
</template>

<script>
import { useStore } from 'vuex'
import { computed } from 'vue'
import { useRouter } from 'vue-router'
export default {
  name: 'AppToNav',
  setup() {
    const store = useStore()
    // 获取用户信息,来控制账户登录与退出的显示与隐藏
    // 这样写不会响应式
    // const { profile } = store.state.user
    // 使用vuex的state需要用到计算属性
    const profile = computed(() => {
      return store.state.user.profile
    })
    // 退出登录
    // 1、清空本地信息
    // 2、退出登录跳转到登录页
    const router = useRouter()
    const logout = () => {
      store.commit('user/setUser', {})
      // 清空购物车
      store.commit('cart/setCart', [])
      router.push('/login')
    }
    return { profile, logout }
  }
}
</script>

<style lang='less' scoped>
.app-topnav {
  background: #333;

  ul {
    display: flex;
    height: 53px;
    justify-content: flex-end;
    align-items: center;

    li {
      a {
        padding: 0 15px;
        color: #cdcdcd;
        line-height: 1;
        display: inline-block;

        i {
          font-size: 14px;
          margin-right: 2px;
        }

        &:hover {
          color: @xtxColor;
        }
      }

      ~li {
        a {
          border-left: 2px solid #666;
        }
      }
    }
  }
}
</style>